# 字符串编码
# 编码前
a = '这是一段需要编码的文字'
print(a, end=' ')
print(type(a))
# 编码后
b = a.encode()
print(b, end=' ')
print(type(b))
# 解码后
c = b.decode()
print(c, end=' ')
print(type(c))

# 指定编码格式
d = a.encode('utf-8')
print(d, end=' ')
print(type(d))
# 指定解码格式
e = d.decode('utf-8')
print(e, end=' ')
print(type(e))
# 直接解码
print(
    b'\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe6\xae\xb5\xe9\x9c\x80\xe8\xa6\x81\xe7\xbc\x96\xe7\xa0\x81\xe7\x9a\x84\xe6\x96\x87\xe5\xad\x97'.decode(
        'utf-8'))

# 字符串查找
# find(): 返回索引或者-1
# rfind(): 从右侧开始找
str = '这，这，这，这是一段文字，你想从这里找到什么？'
print(str.find('这'))
print(str.find('这', 8, 10))

# index(): 返回索引或者报异常
# rindex(): 从右侧开始找
print(str.index('这'))
# print(str.index('这', 8, 10))

# count(): 返回出现次数
print(str.count('这'))
print(str.count('这', 8, 10))

# replace(): 替换并返回一个新的，不改变原来的
print(str.replace('这', '那', 3))

# split(): 返回数组
print(str.split('，', ))
print(str.split('，', 2))

# join(): 返回字符串
arr = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
print(','.join(arr))

# capitalize(): 第一个首字母大写
str = 'asdf jkl'
print(str.capitalize())

# title(): 每个单词首字母大写
print(str.title())

# upper(): 小写全转大写
print(str.upper())

# lower(): 大写全转小写
str = 'ASDF JKL'
print(str.lower())
